x

Broken Access Control

Sites have pages that're protected from regular visitors, i.e. only the site's admin user should ba able to access a page to manage other users. If a website visitor is able to access the protected page/pages they're not authorised to view, access control is broken.

Regular visitors being able to access protected pages leads to them accessing unauthorised functionality and/or being able to read sensitive information.

Scenario #1: The application uses unverified data in a SQL call that is accessing account information:

  • pstmt.setString(1, request.getParameter("acct"));
  • ResultSet results = pstmt.executeQuery( );

An attacker simply modifies the ‘acct’ parameter in the browser to send whatever account number they want. If not properly verified, the attacker can access any user’s account.
http://example.com/app/accountInfo?acct=notmyacct

Scenario #2: An attacker simply force browses to target URLs. Admin rights are required for access to the admin page.

If an unauthenticated user can access either page, it’s a flaw. If a non-admin can access the admin page, this is a flaw.

IDOR

Insecure Direct Object Reference, a way of exploiting a misconfiguration in the way user input is handled, to access resources you wouldn't normally be able to access. A type of access control vulnerability.

I.e. an attacker changing the value of the account_parameter in a vulnerable banking web app to access another users' information.

https://examplebank.com/account_number=1234
Left-click: follow link, Right-click: select node, Scroll: zoom
x